/**
 * Store导入标准化工具
 * 用于修复不规范的store导入方式，统一使用全局store路径
 * 
 * 使用方法:
 * 1. 在小程序启动时检查并修复存在的错误导入
 * 2. 开发时可参考此文件中的导入路径规范
 */

// 全局store的标准导入路径
const STORE_PATHS = {
  // 全局store
  userStore: '../../../../../store/global/user.js',
  messageStore: '../../../../../store/global/message.js',
  uiStore: '../../../../../store/global/ui.js',
  errorHandler: '../../../../../store/global/error_handler.js',
  appStore: '../../../../../store/global/app.js',
  projectStore: '../../../../../store/global/project.js',
  cacheStore: '../../../../../store/global/cache.js',
  
  // favStore和footStore在同一个文件中
  favStore: '../../../../../store/global/fav_foot.js',
  footStore: '../../../../../store/global/fav_foot.js',
  
  // 业务模块store
  taskStore: '../../../../../store/modules/task/task.js',
  newsStore: '../../../../../store/modules/oa/modules/news/news_store.js',
  knowledgeStore: '../../../../../store/modules/knowledge/knowledge.js',
  contactStore: '../../../../../store/modules/contact/contact.js',
  
  // 管理员相关store (来自项目内部store)
  adminStore: '../../../store/admin_store.js',
  adminFlowStore: '../../../store/admin_store.js',
  whiteStore: '../../../../../store/modules/system/white_store.js',
  userAdminStore: '../../../store/user_admin_store.js',
  
  // PLM项目相关store
  plmStore: '../../../store/plm_store.js',
  researchStore: '../../../store/research_store.js'
};

// 不推荐使用的导入路径
const DEPRECATED_PATHS = [
  '../../../stores/index',
  '../../../../../stores/global/user_store',
  '../../../../../store/user_store',
  '../../../store/index',
  '../../../store/white_store.js'
];

/**
 * 检查当前页面是否包含不规范的store导入
 * @param {Object} pageObj 页面对象
 * @returns {Boolean} 是否有不规范导入
 */
function checkStoreImports(pageObj) {
  if (!pageObj) return false;
  
  const pageCode = pageObj.toString();
  let hasDeprecated = false;
  
  DEPRECATED_PATHS.forEach(path => {
    if (pageCode.includes(path)) {
      console.warn(`[Store导入检查] 发现不规范导入路径: ${path}`);
      hasDeprecated = true;
    }
  });
  
  return hasDeprecated;
}

/**
 * 获取store的标准导入路径
 * @param {String} storeName store名称
 * @returns {String} 标准导入路径
 */
function getStandardPath(storeName) {
  return STORE_PATHS[storeName] || null;
}

/**
 * 打印Store的标准导入帮助信息
 */
function showStoreImportHelp() {
  console.info('[Store导入指南] 请使用以下标准路径导入store:');
  
  for (const [store, path] of Object.entries(STORE_PATHS)) {
    console.info(`${store}: ${path}`);
  }
  
  console.info('[Store导入示例]');
  console.info('// 引入用户store');
  console.info('const { userStore } = require(\'../../../../../store/config/store_import.js\');');
  console.info('// 引入UI store');
  console.info('const { uiStore } = require(\'../../../../../store/config/store_import.js\');');
}

module.exports = {
  checkStoreImports,
  getStandardPath,
  showStoreImportHelp,
  STORE_PATHS,
  DEPRECATED_PATHS
}; 